package main

import (
	"fmt"
	"log"
	"net/http"
)

//主服务
func serverApp() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
		fmt.Fprintln(writer, "Hello world")
	})
	if err := http.ListenAndServe(":8080", mux); err != nil {
		log.Fatal(err)
	}
}

//性能监听
func serverDebug() {
	if err := http.ListenAndServe(":8081", http.DefaultServeMux); err != nil {
		log.Fatal(err)
	}
}

func main() {

	/*
		这种写法回存在一些问题
		1.serverDebug是在后台运行，有没有出问题其实察觉不出来
		2.serverApp是主服务，要是主服务挂掉了，就都挂掉了
	*/
	//go serverDebug()
	//serverApp()

	/*
		这种写法是上面写法的优化，通过启动两个协程，提供服务
		但是也不太好，调用log.Fatal == os.Exit
	*/
	go serverApp()
	go serverDebug()
	select {}
}
